/*
 * @Author: Jiraiya
 * @Date: 2020-04-30 12:12:01
 * @LastEditors: Jiraiya
 * @LastEditTime: 2020-05-07 14:32:49
 * @Description: 
 */
'use strict';


class BaseService{

    constructor(){
        //后端服务名
        this.backendName = '';
        //后端服务ip、端口
        this.backend = {};
    }

    async curl(url, args){

        const finalUrl = Object.assign({}, this.backend, {path: url});

        //后端的 spring 框架，如果请求header中，包含 Accept: application/json 这个头，会导致中文乱码！
        //urllib 库，在 dataType === 'json' 时，刚好会设置 Accept: application/json 头！！
        //因此，这里需要强制改一个header
        args = Object.assign({
            dataType: 'json',
            Accept: 'application/json;charset=utf-8',
        }, args);

        //先不catch错误，交给action里自己处理
        return this.ctx.curl(finalUrl, args).then( (out) => {
            return out.data;
        }).catch( (err) => {
            return Promise.reject(err);
        });
    }
}



module.exports = BaseService;


